import { createStore, createLogger } from 'vuex'
// 导入子模块
import cart from './modules/cart'
import user from './modules/user'
import cartegory from './modules/catogory'
// 导入持久化插件 : 吧vuex存的state数据持久化
import createPersistedState from 'vuex-persistedstate'

/**
 * 注意 :
 * 1.持久化插件不会自动存储
 * 2.调用就会存储,之后有变化会自动同步新的state数据到本地.
 * 如何控制持久化存储的范围 => 通过 paths:[]
 * 1.顶级模块数据 : 直接属于属性名指定
 * 2.子模块的数据 : 模块名.属性名
 */
export default createStore({
  // strict: true,
  state: {
  },
  mutations: {
  },
  actions: {
  },
  modules: {
    cart,
    user,
    cartegory
  },
  // 持久化存储数据
  plugins: [createPersistedState({
    key: 'rabbit-store', // 存储的名字
    paths: ['user', 'cart'] // 要存储的值
  }),
  createLogger()
  ]
})
